﻿using System;
using System.Collections.Generic;

namespace mvcForum.Core.Interfaces.Data {

	public interface ITopicRepository : IRepository<Topic> {
		IList<Topic> ReadAnnouncements(Forum forum, ForumUser user, Boolean isModerator);
		IList<Topic> ReadStickiesAndRegulars(Forum forum, Int32 page, Int32 announcementCount, ForumUser user, Boolean isModerator);
		IList<Topic> ReadQuarantined(Forum forum);
		IList<Topic> ReadTopics(Forum forum, Int32 page, ForumUser user, Boolean isModerator);
		IEnumerable<Topic> ReadManyOptimized(ISpecification<Topic> spec);
		Topic ReadOneOptimizedWithPosts(Int32 id);
		Topic ReadOneOptimized(ISpecification<Topic> spec);
		Topic ReadOneOptimizedWithPosts(ISpecification<Topic> spec);
	}
}